package day02;
//此类是用于验证基本数据类型转换的测试demo
public class Test07 {
    public static void main(String[] args) {
        long d = 5; //自动类型转换
        double e = 5; //自动类型转换
        System.out.println(e); //5.0, 默认保留一位小数

        long f =100000000000L;
        int g=(int)f;
        System.out.println(g); //溢出，强制转换有可能

        double h = 25.987;
        int i = (int)h;
        System.out.println(i);//强转有可能丢失精度

        long j =900000000000L;
        double k=j;
        System.out.println(k);  //9.0E11


        //byte类型范围 -128~127
        byte b1=5;
        byte b2=6;
        //因为byte类型在运算时需要先转换为int
        //int类型的数字运算，结果还是int
        //需要将运算结果的int类型强制转换为byte
        byte b3 = (byte)(b1+b2); //强制转换优先级高，(b1+b2)要加小括号
        System.out.println(b3);

        int i1=2147483647;
        int i2=2147483646;
        long l1 =i1+i2;
        long l2 =(long)i1+i2;
        long l3 =i1+(long)i2;  //强制转换优先级高
        long l4 =i1++;  //先赋值，后自加
        System.out.println(l1); //溢出  -3
        System.out.println(l2); //正常  4294967293
        System.out.println(l3);  //正常  4294967293
        System.out.println(l4);  //正常赋值
        System.out.println(i1);  //自加溢出

        System.out.println(2*'2'); //输出100
        System.out.println('a'+0);
        System.out.println('a'/2);

    }
}
